#pragma once

namespace UI
{

// Forward declarations.
class Menu;
class Widget;
class Button;

class Page
{
public:
	Page( const char* a_Name );
	~Page();

	void Update( float a_DT );
	void Render();
	void Delete();

	UI::Menu* GetParentMenu();

	const char* GetName();

	void AddWidget( UI::Widget* a_Widget );

	friend void UI::Menu::AddPage( UI::Page* a_Page );
	friend class UI::Widget;	// 'class' keyword required for Android compilation.
private:
	Page() {}	// Private default c-tor.

	void SetParentMenu( UI::Menu* a_Menu );

	UI::Menu* m_ParentMenu;

	std::list<UI::Widget*> m_Widgets;
	const char* m_Name;
};

}